Data storage systems are used in a variety of businesses for the purpose of storing and maintaining data which is critical to the operation of the businesses and their customers. It is very important that such data storage systems be highly reliable to minimize or eliminate the chance of losing data if the system fails. The most secure and reliable systems employ total redundancy, in which every component of the system is replicated, such that, upon a failure of a component, another component takes over operation, so that the data storage system can remain fully functional. For example, two storage processors may be provided in a system such that if one fails, the other assumes the operation of the failed processor as well as maintaining its own. However, total redundancy is expensive and can be an inefficient use of system resources.
So-called “high availability” systems optimize the reliability of data storage systems by providing redundancy only of critical components to eliminate single points of failure. A single point of failure occurs when the failure of a single component of a system causes the entire system to cease operating, resulting in the potential loss of data. Therefore, one goal in designing a high availability data storage system is to provide a satisfactory level of reliability while keeping the cost of the system in check.